local voucherKey = KEYS[1]
local orderKey = KEYS[2]
local userId = ARGV[1]

-- 从Redis获取库存
local value = redis.call('GET', voucherKey)
if not value then
    return -1  -- 不存在此商品
end

local stock = tonumber(value)
if stock <= 0 then
    return 0  -- 库存不足
end

-- 判断用户是否已经下单
local isOrder = redis.call('SISMEMBER', orderKey, userId)
if isOrder == 1 then
    return -2  -- 无法重复下单
end

-- 扣减库存，保存用户信息
redis.call('DECR', voucherKey)
redis.call('SADD', orderKey, userId)

return 1  -- 成功
        --String voucherKey = SECKILL_STOCK_KEY+voucherId;
        --String value = stringRedisTemplate.opsForValue().get(voucherKey);
        --if(value==null) return Result.fail("不存在此商品");
        --int stock = Integer.parseInt(value);
        --if(stock<=0) return Result.fail("库存不足");
        --//判断用户是否已经下单
        --Boolean isOrder = stringRedisTemplate.opsForSet().isMember(voucherKey, String.valueOf(UserHolder.getUser().getId()));
        --if(Boolean.TRUE.equals(isOrder)) return Result.fail("无法重复下单");
        --//扣减库存，保存用户信息
        --stringRedisTemplate.opsForValue().set(voucherKey, String.valueOf((stock-1)));
        --stringRedisTemplate.opsForSet().add(voucherKey, String.valueOf(UserHolder.getUser().getId()));
